
package com.joshluisaac.generics;

/**
 * @author joshua
 * @param <K>
 * @param <V>
 *
 */
public class MultipleTypeParameters<K, V> implements MultipleTypeParametersImpl<K, V> {
	
	private K key;
	private V value;

	/**
	 * @param key
	 * @param value
	 */
	public MultipleTypeParameters(K key, V value) {
		this.key = key;
		this.value = value;
		System.out.println(key + " -> " + value);
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		@SuppressWarnings("unused")
		MultipleTypeParametersImpl<String, String> p1 = new MultipleTypeParameters<String, String>("A001", "From Implementation instantiation");
		@SuppressWarnings("unused")
		MultipleTypeParametersImpl<String, String> p2 = new MultipleTypeParameters<String, String>("A002", "Diamond Notation");
		@SuppressWarnings("unused")
		MultipleTypeParameters<String, String> p3 = new MultipleTypeParameters<String, String>("A003", "From Object instantiation");
		@SuppressWarnings("unused")
		MultipleTypeParameters<Integer, String> p4 = new MultipleTypeParameters<Integer, String>(1, "From Object instantiation");

	}

	@Override
	public K getKey() {
		// TODO Auto-generated method stub
		return key;
	}

	@Override
	public V getValue() {
		// TODO Auto-generated method stub
		return value;
	}

}
